package co.com.pd.ws;

import javax.ws.rs.Consumes;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.springframework.stereotype.Component;
import co.com.pd.business.impl.PrestamoImpl;
import co.com.pd.dtos.PrestamoDto;

/**
 * 
 * @author Usuario Clase del web service para la creacion del los web service
 *         POST Y PUT
 */
@Component
@Path("/prestamoPost")
public class PrestamoWs {

	/**
	 * 
	 * @param idUsuario
	 * @param serialDispo
	 * @return Response Web service pot que permite crear la solicitud de
	 *         prestamo del dispositivo.
	 */
	@POST
	@Produces(MediaType.TEXT_PLAIN)
	@Consumes(MediaType.APPLICATION_JSON)
	@Path("/post")
	public Response postdato(@QueryParam("idUsuario") String idUsuario,
			@QueryParam("serialDispo") String serialDispo) {

		PrestamoDto prestamodto = new PrestamoDto();
		PrestamoImpl prestamoimpl = new PrestamoImpl();

		prestamoimpl.realizarSolicitudPrestamo(idUsuario, serialDispo);
		String output = "POST :  Guardo corecytamente";
		return Response.status(200).entity(output).build();

	}

	/**
	 * 
	 * @param idprestamo
	 * @param estadoPrestamo
	 * @return Response. Metodo que nos permite cambiar el estado del prestado
	 *         que esta en mendiente a aprobado o rechado deacuerdo al criterio
	 *         del alministrador
	 */
	@PUT
	@Path("/valida")
	@Produces(MediaType.APPLICATION_JSON)
	public Response validarPrestamo(@QueryParam("idprestamo") String idprestamo,
			@QueryParam("estadoprestamo") String estadoPrestamo) {

		PrestamoImpl prestamoimpl = new PrestamoImpl();
		prestamoimpl.validarSolicitudPrestamo(estadoPrestamo, idprestamo);

		String output = "PuT :  acutlizo correctamente";
		return Response.status(200).entity(output).build();

	}
}
